// pages/my/my.js
import {
  store
} from '../../utils/store';
import {
  clearLoginInfo
} from '../../utils/auth';

Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfo: null,
    showLoginModal: false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
    this.checkLoginStatus();
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.checkLoginStatus();
  },
  // 添加导航方法
  navigateTo(e) {
    const {
      userInfo
    } = this.data
    if (userInfo && userInfo.userId) {
      const path = e.currentTarget.dataset.path;
      // 如果已登录，直接跳转
      wx.navigateTo({
        url: path,
        fail(err) {
          console.error('导航失败：', err);
          wx.showToast({
            title: '页面跳转失败',
            icon: 'none'
          });
        }
      });
    } else {
      // 如果未登录，提示请登录并显示登录组件
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      });
      this.setData({
        showLoginModal: true
      });
    }

  },

  // 点击用户信息区域
  handleUserClick() {
    console.log('点击用户信息区域');
    const {
      userInfo
    } = this.data;
    if (userInfo) {
      this.setData({
        showActionModal: true
      });
    } else {
      this.setData({
        showLoginModal: true
      });
    }
  },
  // 检查用户登录状态并跳转到收藏页面
  navigateToMyCollect() {
    const {
      userInfo
    } = this.data
    if (userInfo && userInfo.id) {
      wx.navigateTo({
        url: '/pages/myCollect/myCollect'
      });
    } else {
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      });
      this.setData({
        showLoginModal: true
      });
    }
  },

  // 处理退出登录
  handleLogout() {
    clearLoginInfo();
    this.setData({
      userInfo: null
    });
    wx.showToast({
      title: '已退出登录',
      icon: 'success'
    });
  },

  // 检查登录状态
  checkLoginStatus() {
    const userInfo = store.getUserInfo();
    console.log('检查登录状态:', userInfo);
    if (userInfo && userInfo.createdAt) {
      const joinDate = new Date(userInfo.createdAt); // 时间戳转换为 Date 对象
      const today = new Date();
      const diffTime = today - joinDate;
      const joinDays = Math.floor(diffTime / (1000 * 60 * 60 * 24)); // 计算天数
      // 将计算出的 joinDays 添加到 userInfo 对象中
      userInfo.joinDays = joinDays;
    }
  
    this.setData({
      userInfo
    });
  },

  // 关闭操作弹窗
  onActionModalClose() {
    this.setData({
      showActionModal: false
    });
  },

  // 关闭登录弹窗
  onLoginModalClose() {
    this.setData({
      showLoginModal: false
    });
  },

  // 登录成功回调
  onLoginSuccess() {
    this.checkLoginStatus();
    console.log('登录成功回调触发');
    this.setData({
      showLoginModal: false
    });

    const userInfo = store.getUserInfo();
    console.log('登录后store中的用户信息:', userInfo);

    if (userInfo) {
      this.setData({
        userInfo
      });
    }
  }
})